package com.doudou.collection.domain.service;

import com.doudou.collection.orm.vo.UserDetailFansAndFollowVO;
import com.doudou.collection.orm.vo.UserDetailStandardVO;
import com.doudou.collection.orm.vo.UserSimpleVO;

import java.util.List;


/**
 * className: UserDetailService<br>
 * description: 个人详情业务逻辑类<br>
 * author: 王林峰<br>
 * date: 2023/6/23 10:00<br>
 * version: 1.0<br>
 */
public interface UserDetailService {


    /**
     * 通过用户id查询粉丝列表
     * @param id 当前登录用户id
     * @return  粉丝列表list
     */
    List<UserSimpleVO> selectFansListById(Long id);

    /**
     * 通过id查询关注列表
     * @param id 当前登录用户id
     * @return 关注列表list
     */
    List<UserSimpleVO> selectFollowListById(Long id);

    /**
     * 通过id查询粉丝数量
     * @param id 当前登录用户id
     * @return UserDetailFansAndFollowVO VO中有参数粉丝数和关注数
     */
    UserDetailFansAndFollowVO selectFansCountById(Long id);

    /**
     * 通过id查询粉关注数量
     * @param id 当前登录用户id
     * @return UserDetailFansAndFollowVO VO中有参数粉丝数和关注数
     */
    UserDetailFansAndFollowVO selectFollowsCountById(Long id);


    /**
     * 通过id查询用户详细信息
     * @param id  当前登录用户id
     * @return 用户详情VO
     */
    UserDetailStandardVO getStandardById(Long id);
}
